<?php
function getBrowser(){
    $br = $_SERVER['HTTP_USER_AGENT'];
    if(!empty($br)){
        if (preg_match('/MSIE/i',$br)) {
            $br = 'Internet Explorer';
        }elseif (preg_match('/Firefox/i',$br)) {
            $br = 'Firefox';
        }elseif (preg_match('/Chrome/i',$br)) {
            $br = 'Chrome';
        }elseif (preg_match('/Safari/i',$br)) {
            $br = 'Safari';
        }elseif (preg_match('/Opera/i',$br)) {
            $br = 'Opera';
        }else {
            $br = 'Other';
        }
        return $br;
    }else{
        return "Unknown";
    } 
}

function getOs(){
    $OS = $_SERVER['HTTP_USER_AGENT'];
    if(!empty($OS)){
        if(preg_match('/win/i',$OS) && preg_match('/nt 5.1/i', $OS)){
            $OS = 'Windows XP';
        }elseif(preg_match('/win/i',$OS) && preg_match('/nt 5.2/i', $OS)){
            $OS = 'Windows2003';
        }elseif(preg_match('/win/i',$OS) && preg_match('/nt 5/i', $OS)){
            $OS = 'Windows2000';
        }elseif(preg_match('/win/i',$OS) && preg_match('/nt 6.1/i', $OS)){
            $OS = 'Windows7';
        }elseif(preg_match('/win/i',$OS) && preg_match('/nt 10.0/i', $OS)){
            $OS = 'Windows10';
        }elseif(preg_match('/win/i',$OS) && preg_match('/nt 6.3/i', $OS)){
            $OS = 'Windows8.1';
        }elseif (preg_match('/android/i',$OS)) {
            $OS = 'Android';
        }elseif (preg_match('/mac/i',$OS)) {
            $OS = 'MAC';
        }elseif (preg_match('/linux/i',$OS)) {
            $OS = 'Linux';
        }elseif (preg_match('/unix/i',$OS)) {
            $OS = 'Unix';
        }elseif (preg_match('/bsd/i',$OS)) {
            $OS = 'BSD';
        }else {
            $OS = 'Other';
        }
        return $OS;
    }else{
        return "Unknown";
    }   
}

function sendMail($email,$title,$content){
    $mail = new \PHPMailers\PHPMailer();//实例化PHPMailer核心类
    // 装配邮件服务器
    $mail->SMTPDebug = 0;//是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
    $mail->isSMTP();//使用smtp鉴权方式发送邮件
    $mail->SMTPAuth=true;//smtp需要鉴权 这个必须是true
    $mail->Host = C('MAIL_SMTP')['MAIL_HOST'];//链接qq域名邮箱的服务器地址
    $mail->SMTPSecure = 'ssl';//设置使用ssl加密方式登录鉴权
    $mail->Port = 465;//设置ssl连接smtp服务器的远程服务器端口号，以前的默认是25，但是现在新的好像已经不可用了 可选465或587
    $mail->CharSet = 'UTF-8';//设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码
    $mail->FromName = C('MAIL_SMTP')['MAIL_USERNAME'];//设置发件人姓名（昵称） 任意内容，显示在收件人邮件的发件人邮箱地址前的发件人姓名
    $mail->Username =C('MAIL_SMTP')['MAIL_USERNAME'];//smtp登录的账号 这里填入字符串格式的qq号即可
    $mail->Password = C('MAIL_SMTP')['MAIL_PASSWORD'];//smtp登录的密码 使用生成的授权码（就刚才叫你保存的最新的授权码）【非常重要：在网页上登陆邮箱后在设置中去获取此授权码】
    $mail->From = C('MAIL_SMTP')['MAIL_FROM'];//设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”
    $mail->isHTML(true);//邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false
    $mail->addAddress($email);//设置收件人邮箱地址
    $mail->Subject = $title;//添加该邮件的主题
    $mail->Body = $content;//添加邮件正文 上方将isHTML设置成了true，则可以是完整的html字符串 如：使用file_get_contents函数读取本地的html文件
    //简单的判断与提示信息
    if($mail->send()) {
        return true;
    }else{
        return false;
    }
}
//生成彩虹字
function color_txt($str){
    $len        = mb_strlen($str);
    $colorTxt   = '';
    for($i=0; $i<$len; $i++) {
        $colorTxt .=  '<span style="color:'.rand_color().'">'.mb_substr($str,$i,1,'utf-8').'</span>';
    }
    return $colorTxt;
}
function rand_color(){
    return '#'.sprintf("%02X",mt_rand(0,255)).sprintf("%02X",mt_rand(0,255)).sprintf("%02X",mt_rand(0,255));
}
/**
 * 获取客户端IP地址
 * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字
 * @param boolean $adv 是否进行高级模式获取（有可能被伪装）
 * @return mixed
 */
function get_client_ip1($type = 0,$adv=false) {
    $type       =  $type ? 1 : 0;
    static $ip  =   NULL;
    if ($ip !== NULL) return $ip[$type];
    if($adv){
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $arr    =   explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
            $pos    =   array_search('unknown',$arr);
            if(false !== $pos) unset($arr[$pos]);
            $ip     =   trim($arr[0]);
        }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
            $ip     =   $_SERVER['HTTP_CLIENT_IP'];
        }elseif (isset($_SERVER['REMOTE_ADDR'])) {
            $ip     =   $_SERVER['REMOTE_ADDR'];
        }
    }elseif (isset($_SERVER['REMOTE_ADDR'])) {
        $ip     =   $_SERVER['REMOTE_ADDR'];
    }
    // IP地址合法验证
    $long = sprintf("%u",ip2long($ip));
    $ip   = $long ? array($ip, $long) : array('0.0.0.0', 0);
    return $ip[$type];
}
//限制提交次数
function GetIpLookup($ip = '')
{
    if ($ip == '') {
        $url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json";
        $ip = json_decode(file_get_contents($url), true);
        $data = $ip;
    } else {
        $url = "http://ip.taobao.com/service/getIpInfo.php?ip=" . $ip;
        $ip = json_decode(file_get_contents($url));
        if ((string)$ip->code == '1') {
            return false;
        }
        $data = (array)$ip->data;
    }

    return $data;
}
function GetIpLookup1($ip = '')
{
    if ($ip == '') {
        $url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json";
        $ip = json_decode(file_get_contents($url), true);
        $data = $ip;
    } else {
        $url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip;
        $ip = json_decode(file_get_contents($url),true);
        $data = $ip;
    }

    return $data;
}
//浏览量
function watch(){
    $num=file_get_contents('count.txt');
    $num++;
    file_put_contents('count.txt',$num);
    return $num;
}
function downfile($file)
{
    $filename=$file; //文件名
    $date=date("Ymd-H:i:m");
    Header( "Content-type:  application/octet-stream ");
    Header( "Accept-Ranges:  bytes ");
    Header( "Accept-Length: " .filesize($filename));
    header( "Content-Disposition:  attachment;  filename= $filename");
    //echo file_get_contents($filename);
    readfile($filename);
}
function subtext($text, $length)
{
    if(mb_strlen($text, 'utf8') > $length)
        return mb_substr($text, 0, $length, 'utf8').'...';
    return $text;
}
function Getip()
{
    if (!empty($_SERVER["HTTP_CLIENT_IP"])) {
        $ip = $_SERVER["HTTP_CLIENT_IP"];
    }
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { //获取代理ip
        $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    }
    $count='';
    if (!empty($ip)) {
        $ips = array_unshift($ips, $ip);
        $count = count($ips);
    }
    for ($i = 0; $i < $count; $i++) {
        if (!preg_match("/^(10|172\.16|192\.168)\./i", $ips[$i])) {//排除局域网ip
            $ip = $ips[$i];
            break;
        }
    }
    $tip = empty($_SERVER['REMOTE_ADDR']) ? $ip : $_SERVER['REMOTE_ADDR'];
    if ($tip == "127.0.0.1") { //获得本地真实IP
        return get_onlineip();
    } else {
        return $tip;
    }
}

////获得本地真实IP
function get_onlineip()
{
    $mip = file_get_contents("http://1212.ip138.com/ic.asp");
    if ($mip) {
        preg_match("/\[.*\]/", $mip, $sip);
        $p = array("/\[/", "/\]/");
        return preg_replace($p, "", $sip[0]);
    } else {
        return "获取本地IP失败！";
    }

}